還記得昨天的富爸爸例子,後代取得了前輩的天賦。
從昨天文章的比較,類別class引入模組來取得方法,也稍微了解類別與模組之間得差異
那今天就來看模組的包含(include)與延伸(extend)。
先用飛天豬程式碼來看一下:
module Flyable
def fly
puts "I can fly!"
end
end
class Pig
include Flyable
end
Pig.new.fly # => I can fly!
Pig.fly # => NoMethodError
# --------------------
class Pig
extend Flyable
end
Pig.fly # => I can fly!
Pig.new.fly # => NoMethodError
從程式碼得到的結果來看:
在網路上看到Fred大大文章,用繼承鍊的引入的方式來圖解,從文章更清楚知道
include所引入的方法是在類別class的上方,則會將模組內的方法增加為自己的實體方法(instance method)
extend則是會將模組引入到類別class的singleton class上方,所以說模組的方法會變成類別方法(class mehtod)。
更多可詳細內容Fred大大得文章
至於實體與類別方法是什麼,就之後再來一探究竟了!
新手筆記能解釋得還不多,靠著閱讀一點一點累積知識啊~
期待每天用0.1%速度緩慢吸收